package com.huixh.train.business.req;

import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;

import java.util.Date;

/**
* @author huixh
*/
public class DailyTrainSaveReq {

    /**
    * id
    */
    private Long id;

    /**
    * 日期
    */
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @NotNull(message = "【日期】不能为空")
    private Date date;

    /**
    * 车次编号
    */
    @NotBlank(message = "【车次编号】不能为空")
    private String code;

    /**
    * 车次类型|枚举[TrainTypeEnum]
    */
    @NotBlank(message = "【车次类型】不能为空")
    private String type;

    /**
    * 始发站
    */
    @NotBlank(message = "【始发站】不能为空")
    private String start;

    /**
    * 始发站拼音
    */
    @NotBlank(message = "【始发站拼音】不能为空")
    private String startPinyin;

    /**
    * 出发时间
    */
    @JsonFormat(pattern = "HH:mm:ss",timezone = "GMT+8")
    @NotNull(message = "【出发时间】不能为空")
    private Date startTime;

    /**
    * 终点站
    */
    @NotBlank(message = "【终点站】不能为空")
    private String end;

    /**
    * 终点站拼音
    */
    @NotBlank(message = "【终点站拼音】不能为空")
    private String endPinyin;

    /**
    * 到站时间
    */
    @JsonFormat(pattern = "HH:mm:ss",timezone = "GMT+8")
    @NotNull(message = "【到站时间】不能为空")
    private Date endTime;

    /**
    * 新增时间
    */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date createTime;

    /**
    * 修改时间
    */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date updateTime;

    public Long getId() {
    return id;
    }

    public void setId(Long id) {
    this.id = id;
    }

    public Date getDate() {
    return date;
    }

    public void setDate(Date date) {
    this.date = date;
    }

    public String getCode() {
    return code;
    }

    public void setCode(String code) {
    this.code = code;
    }

    public String getType() {
    return type;
    }

    public void setType(String type) {
    this.type = type;
    }

    public String getStart() {
    return start;
    }

    public void setStart(String start) {
    this.start = start;
    }

    public String getStartPinyin() {
    return startPinyin;
    }

    public void setStartPinyin(String startPinyin) {
    this.startPinyin = startPinyin;
    }

    public Date getStartTime() {
    return startTime;
    }

    public void setStartTime(Date startTime) {
    this.startTime = startTime;
    }

    public String getEnd() {
    return end;
    }

    public void setEnd(String end) {
    this.end = end;
    }

    public String getEndPinyin() {
    return endPinyin;
    }

    public void setEndPinyin(String endPinyin) {
    this.endPinyin = endPinyin;
    }

    public Date getEndTime() {
    return endTime;
    }

    public void setEndTime(Date endTime) {
    this.endTime = endTime;
    }

    public Date getCreateTime() {
    return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
    return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
    this.updateTime = updateTime;
    }

@Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", date=").append(date);
        sb.append(", code=").append(code);
        sb.append(", type=").append(type);
        sb.append(", start=").append(start);
        sb.append(", startPinyin=").append(startPinyin);
        sb.append(", startTime=").append(startTime);
        sb.append(", end=").append(end);
        sb.append(", endPinyin=").append(endPinyin);
        sb.append(", endTime=").append(endTime);
        sb.append(", createTime=").append(createTime);
        sb.append(", updateTime=").append(updateTime);
        sb.append("]");
        return sb.toString();
    }
}
